#!/usr/bin/python3
# _*_ coding: utf-8 _*_
#
# Copyright (C) 2022 - 2022 heihieyouheihei, Inc. All Rights Reserved 
#
# @Time    : 2022/12/29 21:03
# @Author  : heihieyouheihei
# @File    : base4_grammar_21.py
# @IDE     : PyCharm
# 通过键值对访问字典
# 在Python中如果想要把字典中的内容全部输出,我们可以使用print()函数输出
name = ['绮梦','冷伊一','香凝','黛兰']    # 创建的名字列表, 使用''还是""都可以
sign = ['水瓶座','射手座','双鱼座','双鱼座']    # 星座
dictionary = dict(zip(name,sign))    # 转换为字典
print("场景模拟结果: ",dictionary)    # 使用print()输出的是字典中的全部内容
# 在使用字典的时候很少直接输出它的内容, 一般情况是根据指定的键得到响应的结果
# 在Python中访问字典元素可以通过下标来实现,不过这个下标与列表.元组不一样,这里的下标指的是:dict[键]
# 我们想要获取"冷伊一"对应的值,
print("想要获取'冷伊一'对应的星座: ",dictionary['冷伊一'])    # 如果指定的键不存在,程序就会报错
# 通过if语句判断想要的键是否在字典中
print("现在想要获取'绮梦'对应的值!",dictionary["绮梦"] if "绮梦" in dictionary else "我的字典里没有此人")

# Python中提供了另外一种方法使用字典对象的get()方法获取指定键的值    dictionary.get(key,[default])
print("通过字典对象的get()方法获取键的值1",dictionary.get("香凝"))
print("通过字典对象的get()方法获取键的值2",dictionary.get("香"))    # 在使用get()方法时候,指定的键值不存在就返回"None"
print("通过字典对象的get()方法获取键的值3",dictionary.get("香","查无此人"))    # 添加了指定键不存在时候的默认值

# 情景模拟(一个字典中保存名字和星座, 另外一个字典中保存各个星座的特点的字典,根据这两个字典找出名字对应的性格特点)
name1 = ['周一','周二','周三','周四']    # 创建的名字列表, 使用''还是""都可以
sign1 = ['水瓶座','射手座','双鱼座','双鱼座']    # 星座
dictionary1 = dict(zip(name1,sign1))    # 转换为字典
sign_all = ['白羊座','金牛座','双子座','巨蟹座','狮子座','处女座','天秤座','天蝎座','射手座','摩羯座','水瓶座','双鱼座']    # 星座列表
nature = ['有一种让人看见就很开心的感觉,阳光.乐观.坚强,性格职来职往,就是有点小脾气',
          '很保守,喜欢稳定,一旦有什么变动就会觉得心里不踏实,性格比较慢热,是个理财高手',
          '喜欢追求新鲜感,有点小聪明,耐心不够,因你的可爱性格会让很多人喜欢和你做朋友',
          '情绪容易敏感,缺乏安全感,做事情有加持到底的毅力,为人重情义,对朋友和家人特别忠实',
          '有着宏伟的理想,总想靠自己的努力成为人上人,向往高高在上的优越感,也期待被仰慕被崇拜的感觉',
          '坚持追求自己的完美主义者',
          '追求平等.和谐,擅长察言观色,交集能力很强,因此真心朋友不少,最大的缺点是面对选择总是犹豫不决',
          '精力旺盛,占有欲强,对于生活很有目标,不达目的誓不罢休,复仇心重',
          '崇尚自由,勇敢.果断.独立,身上有一股勇往直前的劲,只要想做就能做',
          '是最有耐心的,为事最小心,也是最善良的星座.做事脚踏实地,也比较固执,不达目的不放手,而且非常勤奋',
          '人很聪明,最大的缺点是创新,追求独一无二的生活,个人主义色彩很浓重的星座',
          '集所有星座优点于一身,最大的优点是有一颗善良的心,愿意帮助别人'
          ]    # 星座特点的列表
sign_dict = dict(zip(sign_all,nature))    # 转换为字典
print("香凝的星座是:",dictionary.get("香凝"))    # 根据人物名-->获取星座
print("\n 她的星座性格特点是: \n\n",sign_dict.get(dictionary.get("香凝")))    # 输出性格特点